Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

82 feature request suggestion create GitHub actions workflow for automating the build and deployments for feature branches #87

Draft
wants to merge 67 commits into
base: main
Choose a base branch
from

Conversation

lmcdonough
Copy link
Contributor

@lmcdonough lmcdonough commented Dec 13, 2024

This pull request introduces a new GitHub Actions workflow to build and deploy Docker containers for Rust and Next.js projects. The workflow includes steps for building, testing, and pushing Docker images to the GitHub Container Registry.

GitHub Issue: Closes #82

Changes

  • Added a new Github Actions workflow configuration file .github/workflows/build_and_deploy_containers.yml to automate the build and deployment process for feature branches and pull requests to the main branch.
  • Defined two main jobs: build_test_run for building and testing the project, and build_and_push_docker for building and pushing Docker images. The latter job depends on the successful completion of the former.
  • Configured steps to checkout the repository, install the Rust toolchain, use cached dependencies, install seaORM CLI, build the project, and run tests.
  • Configured steps to checkout the repository, log in to the GitHub Container Registry, set up Docker Buildx, cache Docker layers, and build and push Docker images for both the Rust backend and the Next.js frontend.
  • Implemented a caching mechanism for Docker layers to optimize the build process, including steps## Description

Testing Strategy

  • Manually use the workflow_dispatch to iterate and view any errors from the workflow run.

Concerns

  • Managing environment variables, and secrets can be improved upon in the future.

@lmcdonough lmcdonough self-assigned this Dec 13, 2024
@lmcdonough lmcdonough requested a review from jhodapp December 13, 2024 19:56
@lmcdonough lmcdonough added the feature work Specifically implementing a new feature label Dec 13, 2024
@lmcdonough lmcdonough force-pushed the 82-feature-request-suggestion-create-github-actions-workflow-for-automating-the-build-and-deployments-for-feature-branches branch from 2461703 to 13a682f Compare February 10, 2025 19:22
Cargo.toml Outdated
@@ -17,6 +17,7 @@ clap = { version = "4.5.20", features = ["cargo", "derive", "env"] }
log = "0.4.25"
simplelog = { version = "0.12.2", features = ["paris"] }
tokio = "1.41.0"
libsqlite3-sys = "0.30.0" # or "0.31.0"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@lmcdonough We don't use sqlite in our backend, is there something that's calling for this from the GitHub builder?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yep, removed it.

@@ -8,15 +8,15 @@ name = "entity"
path = "src/lib.rs"

[dependencies]
axum-login = "0.16.0"
axum-login = "0.17.0"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@lmcdonough I don't recommend updating these packages in this PR as they're not related to what you're trying to accomplish here. We need to be able to test the backend when making these version updates, so it's best to do that as a separate PR.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed, I will revert this to 0.16.0

@jhodapp jhodapp added the infrastructure DevOps related label Feb 25, 2025
… with updated actions, improved environment variable handling, and added artifact attestations for images.
…tructure

- Change base image in Dockerfile to rust:1.70-slim
- Use environment variable for backend port in Dockerfile
- Update volume paths in docker-compose to point to the docs directory
- Specify build target in docker-compose for runtime
- Adjust frontend build context in docker-compose
… and runs the correct binary in the pulled image.
…tform support and cleanup
@lmcdonough lmcdonough force-pushed the 82-feature-request-suggestion-create-github-actions-workflow-for-automating-the-build-and-deployments-for-feature-branches branch from ae72837 to 242ac4a Compare March 28, 2025 15:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature work Specifically implementing a new feature infrastructure DevOps related
Projects
Status: 🏗 In progress
2 participants